/*
 * Copyright (c) 2021. Moses All Right Reserved
 */

package com.moses.design_patterns.iterator;

import java.util.Date;

/**
 * @author Moses
 * @email shenhuohui@gmail.com
 * @date 2021/4/16 22:33
 */
public class Client {
    public static void main(String[] args) throws InterruptedException {
        // 迭代器模式
        // 其实就是 容器 + 迭代器
        // 容器负责对数据的增删，容器还得有一个获得迭代器的能力
        // 迭代器负责迭代，也就是遍历

        // 新建一个容器
        IContainer container = new Container();
        // 往容器里添加事物
        container.add(new Project("a", new Date()));
        container.add(new Project("b", new Date()));
        container.add(new Project("c", new Date()));
        container.add(new Project("d", new Date()));

        // 从容器中获得迭代器
        IIterator iterator = container.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next().toString());
        }

        System.out.println("=============================");
        // 同一个迭代器只能遍历一次，只能再一次获得迭代器才可后面的输出
        iterator = container.iterator();
        container.remove(2);
        while (iterator.hasNext()){
            System.out.println(iterator.next().toString());
        }
    }
}
